A programmable integrated circuit (IC) refers to a type of IC that includes programmable circuitry. An example of a programmable IC is a field programable gate array (FPGA). An FPGA is characterized by the inclusion of programmable circuit blocks. Examples of programmable circuit blocks include, but are not limited to, input/output blocks (IOBs), configurable logic blocks (CLBs), dedicated random access memory blocks (BRAM), multipliers, digital signal processing blocks (DSPs), processors, clock managers, and delay lock loops (DLLs). Circuit designs may be physically implemented within the programmable circuitry of a programmable IC by loading a configuration bitstream into configuration memory of the programmable IC.
Partial reconfiguration is a process where a region of programmable circuitry within the programmable IC referred to as a “partial reconfiguration region” or “PR region” may be dynamically reconfigured by loading a partial configuration bitstream into the programmable IC. The partial configuration bitstream may specify different circuitry than previously implemented in the PR region. The partial configuration bitstream does not specify new and/or different circuitry for portions of programmable circuitry outside of the PR region. The PR region may undergo modification through partial reconfiguration, e.g., the loading of a partial configuration bitstream for the PR region, repeatedly where different partial configuration bitstreams specify different circuitry, while the other regions of the programmable circuitry of the programmable IC referred to as “static circuitry” or “static regions” continue to operate without interruption.
When using a circuit design with multiple PR regions, various characteristics of the PR regions remain constant. While the circuitry within each PR region may change over time using partial reconfiguration technology, the boundaries of each PR region may not be changed. As such, certain characteristics such as the size of each PR region, the shape of each PR region, the connectivity of each PR region to other PR regions and/or the static region, and the number of PR regions remains unchanged within the programmable IC.